//输入：一个待排序的数组
//输出：无
//bubble:冒泡
//sort：排序
function bubbleSort(arr) {
    for (let j = arr.length - 1; j > 0; j--) {
        for (let i = 0; i < j; i++) {
            if (arr[i] > arr[i + 1]) {
                swap(arr, i, i + 1)
            }
        }
    }
}

function swap(arr, index1, index2) {
    let tmp = arr[index1];
    arr[index1] = arr[index2];
    arr[index2] = tmp;
}

const arr = [];
let count = 8;
for (let i = 0; i < count; i++) {
    arr[i] = Math.floor(Math.random() * (count + 1))
}
console.log('输入的数组', arr.toString());
bubbleSort(arr)
console.log('冒泡', arr);


function selectionSort(arr) {
    // let minIndex = 0;
    // for (let i = 1; i < arr.length; i++) {
    //     if (arr[minIndex] > arr[i]) {
    //         minIndex = 1
    //     }
    // }
    // //找到最小索引，进行交换
    // swap(arr, minIndex, 0)

    for (let j = 0; j < arr.length - 1; j++) {
        let minIndex = j;
        for (let i = minIndex + 1; i < arr.length; i++) {
            if (arr[minIndex] > arr[i]) {
                minIndex = i
            }
        }

        swap(arr, minIndex, j)
    }
}

const arr2 = [4, 5, 2, 3, 1]
console.log('选择排序输入' + arr2);
selectionSort(arr2)
console.log('选择排序输出' + arr2);